#-*- coding: UTF-8 -*- 此行指定字符编码，勿删！

# 设置基本信息==============================

# 脚本标题：加方括号
# 脚本描述：<此处填写描述文本>
# --------------------------------------------
# 前景色：黑色
# 背景色：透明色
# --------------------------------------------
# 调用方式：0
#           0 表示手动调用，按下对应项目上的按钮执行脚本；
#           1 表示编译Html前自动调用；
#           2 表示编译Html后自动调用——通常不应该使用；
#           3 使用快捷键调用；
#           4 在使用 Html 工厂加工 Html 文件时自动调用；
#           5 按 Enter 键换行时调用；——通常应在末尾设置：“iv_cancel = True”；
#     如果此脚本只准备手动调用，可省略上面【调用方式：x】行；
#     所有被标记为“1”的脚本都会在编译Html之前依次调用——“自动调用”时不受“作用范围”影响；
#     所有被标记为“2”的脚本都会在编译Html之后依次调用——“自动调用”时不受“作用范围”影响；
#     所有被标记为“3”的脚本都会在按下指定快捷键后依次调用——这属于“手工调用”，受“作用范围”影响；
#     所有被标记为“4”的脚本都会 Html 工厂加工 Html 文本之后、保存之前依次调用——“自动调用”时不受“作用范围”影响；
#     所有被标记为“5”的脚本都会在按下 Enter 键准备换行时调用（尽量少用）——这属于“手动调用”，受“作用范围”影响；
#     另，所有被标记为非“0”的脚本都同时支持手动调用——但最好不要这么干！
# --------------------------------------------
# 快捷键：
#     不常用的快捷键要及时清除，避免误操作。
# 工具条按钮文本：加方括号(_D)
#     工具条按钮文本不为空时，会显示在主窗口工具条上。
#     可以通过类似“某脚本(_X)”这样的格式添加加速键。
# --------------------------------------------
# 组名：
# --------------------------------------------
# 脚本的标题、描述、调用方式和脚本在列表中的前景色、背景可以修改，但不能更改冒号之前的部分！----
# --------------------------------------------
# 变量说明：
# 变量 documentText 中传入的是当前活动文档的文本，或待处理的 Html 文本。
# 变量 inputText 中传入的是要加工的文本，可直接使用。此变量的值可能与 documentText 的值相同。加工好后的文本应在末尾赋值给 outputText 变量。
# 变量 ignoreTextChanging 默认值是 False。 当此变量的值被设置为 true 时，脚本对文本的更改会被忽略。这适用于不需要更改源文本的情况。——例如仅仅只需要用脚本来提取文本的时候。
# 变量 pathToWorkspace 中传入是当前 Markdown 文档到工作区根目录的相对路径。此变量的值通常类似“../../”，表示当前编辑器中的 Markdown 文件相对于工作区根目录的路径；可以利用此变量的路径来引用工作区根目录下的某些文件（例如图片文件）。
# 变量 pathOfWorkspace 中是当前工作区目录的磁盘路径。
# 变量 psArgs 将来会带些其它信息。可以运行〖for m in clr.GetClrType(psArgs.GetType()).GetMethods(): print m〗这行脚本来获取 psArgs 的方法列表。

# 引入库======================================
import sys 
import clr
clr.AddReference("PresentationFramework")
clr.AddReference("PresentationCore")
from System.Windows import *
from System.Windows.Controls import *
from System.Windows.Media import *
from System.Text.RegularExpressions import *

clr.AddReference("LunarMarkdownEditor")
from LunarSF.SHomeWorkshop.LunarMarkdownEditor import Globals
from LunarSF.SHomeWorkshop.LunarMarkdownEditor import LButton
from LunarSF.SHomeWorkshop.LunarMarkdownEditor import LMenuItem
from LunarSF.SHomeWorkshop.LunarMarkdownEditor import LTopMenuItem
from LunarSF.SHomeWorkshop.LunarMarkdownEditor import LWindow
from LunarSF.SHomeWorkshop.LunarMarkdownEditor.Utils import Text
from LunarSF.SHomeWorkshop.LunarMarkdownEditor.Utils import TextPiece

clr.AddReference("MahApps.Metro")
import MahApps.Metro.Controls

if not 'inputText' in vars():
    inputText = 'Sample Text'

ate = psArgs.Ate

# --------------------------------------------
def FormatText(s):  # 可以修改此方法
    r"""
    示例方法
    ~~~~~~~~

        此方法目前的功能仅仅是将传入的文本用一对实心方括号括起来并返回而已。

    :param s: 传入要格式化的字符串。
    :return: 返回格式化后的字符串。
    """
    return "【" + s + "】"
# --------------------------------------------




# --------------------------------------------
# ignoreTextChanging = True  # 默认脚本通常不需要设置此变量。
# 此变量用于在脚本运行结束时，指示 LME 是否用 outputText 的内容替换“作用范围”内的文本。

# iv_cancel = True  # 此变量目前仅用于阻止在编辑器中按下 Enter 键的后续行为。
# 当此变量值为 True 时，按 Enter 键执行脚本后，不会再触发内置的“换行”操作。
# 此变量值可以在其它位置设置，只要脚本执行完毕为 True 就可以达到目的。

outputText = FormatText(inputText)  # 默认脚本可以通常可根据需要修改此行。
# 此变量是否有意义，取决于“ignoreTextChanging”和“iv_cancel”的值。
# 默认脚本通过变量 outputText 传出处理后的文本，
# LME 在脚本执行结束后会用这些文本来替换掉“作用范围”指定的目标文本。
# 如果不需要输出处理后的文本，可改为：outputText = ""
# 但必须保留 outputText 变量，否则会导致异常或崩溃！
# --------------------------------------------
# 注意：如果调用方式为 4 或 5，一般情况下不需要 outputText 变量；
# 　　　但如果此时再手工调用此脚本，仍然需要 outputText 变量。
# ============================================

